# -*- coding: utf-8 -*-
'''
Created on 8/05/2012

@author: EdwarC
'''
from django.core.mail import send_mail
from django.core.context_processors import csrf
from django.contrib.sessions.models import Session
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.http import HttpResponse
from django.views.static import Context, HttpResponseRedirect                       # incorporo para poder acceder a archivos estaticos
from django.conf import settings
from django.contrib import auth
from django.contrib.auth import authenticate, login                                   
from django.contrib.auth.models import Group, User
from django.contrib.auth.decorators import login_required                           # permite usar @login_requerid
from webapp.models import Formulario, UnidadTiempo, FormularioCampos,\
    TaxonomiaCampo, TipoCampo, Solicitud, SolicitudCampos, EstadoSolicitud
from datetime import date
import user


persona = 3
empresa = 4
persona_formulario = 1
empresa_formulario = 2

def redireccionar(plantilla, solicitud, datos):
    variables = {
        'user': solicitud.user, 
        'titulo': 'Mitflow',
        'saludo': '',
        'titulo_pagina': u"Mitflow | Facilita tu vida",
        'path': settings.MEDIA_URL,
    }    
    llaves = datos.keys()
    for indice in range(0,len(llaves)):
        variables[llaves[indice]] = datos[llaves[indice]]
    variables =  Context(variables)
    return render_to_response(plantilla, variables, context_instance=RequestContext(solicitud))

def indice(solicitud):
        return redireccionar('index.html', solicitud, {})

def buscarPerfil(solicitud):
    respuesta = [] 
    grupos = solicitud.user.groups.all()    
    if len(grupos) > 0:
        for grupo in grupos:
            grupoUsuario = Group.objects.get(name = grupo)    
        if grupoUsuario.id == persona or grupoUsuario.id == empresa:
            respuesta.append({'resultado':True, 'grupoUsuarioid':grupoUsuario.id})        
        else:
            respuesta.append({'resultado':False})
    else:
        respuesta.append({'resultado':False})    
    return respuesta


@login_required
def perfil(solicitud):
    texto = "vacia"
    c = {}
    c.update(csrf(solicitud.POST.get('csrfmiddlewaretoken')))
    session = Session.objects.get(session_key=solicitud.session.session_key)
    uid = session.get_decoded().get('_auth_user_id')
    user = User.objects.get(pk=uid)
    if solicitud.session['grupoUsuarioId'] == persona:
        formulario_id = persona_formulario
    else:
        formulario_id = empresa_formulario
    
    if solicitud.POST: 
        nombres = solicitud.POST['nombres']
        if solicitud.session['grupoUsuarioId'] == persona:
            apellidos = solicitud.POST['apellidos']
        else:
            apellidos = ""
        correo = solicitud.POST['correo']
        contrasena_actual = solicitud.POST['contrasena-actual']
        contrasena = solicitud.POST['contrasena-nueva']
        
        try:
            user.first_name = nombres
            user.last_name = apellidos
            if correo.strip() != "":
                user.email = correo
            
            if contrasena.strip() != "":
                tmp_user = authenticate(username=correo, password=contrasena_actual)
                if tmp_user is not None:
                    texto = "Coincide"
                    user.set_password(contrasena)
                else:
                    texto = "No Coincide"
            user.save()
            
            solicitud_producto = Solicitud.objects.filter(empresa_id = 1, formulario_id = formulario_id, persona_id = uid)
            solicitud_producto_id = 0
            if len(solicitud_producto)>0:
                solicitud_producto = Solicitud.objects.get(empresa_id = 1, formulario_id = formulario_id, persona_id = uid)
            else:
                solicitud_producto = Solicitud(empresa_id = 1, formulario_id = formulario_id, persona_id = uid, fecha_solicitud = date.today(), estado_id = 1)
                solicitud_producto.save()
                
            solicitud_producto_id = solicitud_producto.id   
            
            if solicitud.session['grupoUsuarioId'] == persona:
                formulario_campos = FormularioCampos.objects.filter(empresa_id = 1, formulario_id = formulario_id)
            else:
                formulario_campos = FormularioCampos.objects.filter(empresa_id = 1, formulario_id = formulario_id)
                
            for campo in formulario_campos:
                etiqueta = u"%s%s" %('campo', campo.id)
                valor = solicitud.POST[etiqueta]
                etiqueta = u"%s%s" %('id', campo.id)
                id_campo = solicitud.POST[etiqueta]
                if id_campo.strip() == "":
                    id_campo = -1
                solicitud_campos = SolicitudCampos.objects.filter(id = id_campo)
                if len(solicitud_campos)>0:
                    solicitud_campos = SolicitudCampos.objects.get(id = id_campo)
                    solicitud_campos.contenido = valor
                else:
                    solicitud_campos = SolicitudCampos(solicitud_id = solicitud_producto_id, formulario_campos_id = campo.id, contenido = valor)
                        
                    
                solicitud_campos.save()
                texto = u"%s Etiqueta: %s IdCampo: %s Valor: %s" %(texto, etiqueta, id_campo, valor)
        except:
            texto = "Error"
            return HttpResponse(texto)
    
    valores = {}
        
    campos = FormularioCampos.objects.filter(empresa_id = 1, formulario_id = formulario_id)
    for campo in campos:
        solicitud_producto = Solicitud.objects.filter(empresa_id = 1, formulario_id = formulario_id, persona_id = uid)
        if len(solicitud_producto)>0:
            solicitud_producto = Solicitud.objects.get(empresa_id = 1, formulario_id = formulario_id, persona_id = uid)
            solicitud_campo = SolicitudCampos.objects.filter(solicitud_id = solicitud_producto.id, formulario_campos_id = campo.id)
            valores[campo] = {'campo':campo, 'solicitud':solicitud_campo}
        else:
            valores[campo] = {'campo':campo, 'solicitud':""}
        
    datos = {'usuario':user, 'texto':texto, 'formulario_campos': valores,
             'solicitud_campos':valores, 'total': len(valores)}
    return redireccionar('perfil.html', solicitud, datos)
    
    

def recuperarContrasena(solicitud):
    datos = {}
    try:
        if solicitud.method == 'POST':
            usuario = solicitud.POST['usuario']
            mi_usuario = User.objects.filter(username = usuario)
            if mi_usuario:
                contrasena = User.objects.make_random_password(length=10, allowed_chars='abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789')
                user = User.objects.get(username__exact = usuario)
                user.set_password(contrasena)
                texto = "%s %s." %("Se ha restituido su contraseña de acceso a Mitflow. La nueva contraseña es: ", contrasena)
                user.save()
                send_mail('Nueva contraseña de acceso a Mitflow', texto, 'admin@mitflow.com', [user.email], fail_silently=False)
            else:
                datos['msg_error'] = 'El usuario no esta registrado en el sistema.'
            
            datos['msg_error'] = 'Se ha enviado un mensaje a su cuenta de correo electrónico.'
    except:
        datos['msg_error'] = 'Se ha producido un error enviando el correo electronico. '
    return redireccionar('index.html', solicitud, datos)
    
    
def mylogin(solicitud):
    datos = {}
    if solicitud.method == 'POST':
        username = solicitud.POST['usuario']
        password = solicitud.POST['contrasena']
        acceso = mitLogin(solicitud, username, password)
        if acceso:
            return HttpResponseRedirect('/busqueda')
        else:
            datos['msg_error'] = 'Acceso denegado.'
            return redireccionar('index.html', solicitud, datos)

    
def mitLogin(solicitud, usuario, contrasena):
    grupoUsuarioId = 0
    user = authenticate(username=usuario, password=contrasena)
    if user is not None:
        if user.is_active:
            login(solicitud, user)
            grupos = user.groups.all()    
            if len(grupos) > 0:
                for grupo in grupos:
                    grupoUsuario = Group.objects.get(name = grupo)
                    grupoUsuarioId = grupoUsuario.id
            solicitud.session['grupoUsuarioId'] = grupoUsuarioId
            return True
        else:
            return False
    else:
        return False
        

def mylogout(solicitud):
    if 'grupoUsuarioId' in solicitud.session:
        del solicitud.session['grupoUsuarioId']
    if 'msg_error' in solicitud.session:
        del solicitud.session['msg_error']
    auth.logout(solicitud)    
    return HttpResponseRedirect("/")



def crearCuenta(solicitud, perfil):
    if perfil == '3':
        formulario = Formulario.objects.get(empresa_id=1, id=persona_formulario)
        formulario_campos = FormularioCampos.objects.filter(empresa_id = 1, formulario_id = persona_formulario)
        url = "crear_cuenta.html"
    else:
        formulario = Formulario.objects.get(empresa_id=1, id=empresa_formulario)
        formulario_campos = FormularioCampos.objects.filter(empresa_id = 1, formulario_id = empresa_formulario)
        url = "crear_empresa.html"
    datos = {'formulario': formulario, 'formulario_campos': formulario_campos}  
    return redireccionar(url, solicitud, datos)


def guardarCuenta(solicitud, perfil):
    if solicitud.POST:
        c = {}
        texto = ""
        c.update(csrf(solicitud.POST.get('csrfmiddlewaretoken')))
        
        nombres = solicitud.POST['nombres']
        correo = solicitud.POST['correo']
        contrasena = solicitud.POST['contrasena']
        
        if perfil == persona:
            apellidos = solicitud.POST['apellidos']
            formulario_id = persona_formulario
        else:
            formulario_id = empresa_formulario
            
        
        try:
            user = User.objects.create_user(username = correo, email = correo, password = contrasena)
            user.groups.add(perfil)
            user.save()
            
            user.is_staff = False
            user.first_name = nombres
            if perfil == persona:
                user.last_name = apellidos
            user.save()
            
            fecha_solicitud = date.today()
            
            solicitudForm = Solicitud(empresa_id = 1, formulario_id = formulario_id, persona_id = user.id, fecha_solicitud = fecha_solicitud, estado_id = 1)
            solicitudForm.save()
            
            formulario_campos = FormularioCampos.objects.filter(empresa_id = 1, formulario_id = formulario_id)
            for campo in formulario_campos:
                etiqueta = u"%s%s" %('campo', campo.id)
                valor = solicitud.POST[etiqueta]
                
                solicitud_campos = SolicitudCampos(solicitud_id = solicitudForm.id, formulario_campos_id = campo.id, contenido = valor)
                solicitud_campos.save()
                texto = u"%s Campo: %s Valor: %s" %(texto, etiqueta, valor)
            
            texto = u"¡Bienvenido a Mitflow! \n Gracias por unirte a nuestra comunidad. \n \
                        Tu nombre de usuario es: %s \n Tu clave de acceso es: %s.\n\n MITFLOW \n El sitio web donde puedes realizar tus trámites electrónicos." %(correo, contrasena)
            acceso = mitLogin(solicitud, correo, contrasena)
            send_mail('¡Bienvenido a Mitflow!', texto, 'admin@mitflow.com', [correo], fail_silently=False)
            if acceso:
                if perfil == persona:
                    return HttpResponseRedirect('/bienvenida_persona')
                else:
                    return HttpResponseRedirect('/bienvenida_empresa')
        except:
            texto = "Except. Error creando usuario."
            url = 'index.html'
    
            datos = {'texto': texto,
                     'envia': "Edwar C."}
            return redireccionar(url, solicitud, datos)



#===============================================================================
#  VISTA PERSONAS
#===============================================================================

@login_required
def busqueda(solicitud):
    return redireccionar('busqueda.html', solicitud, {})


@login_required
def bienvenida_persona(solicitud):
    return redireccionar('persona/bienvenida.html', solicitud, {})


@login_required
def bienvenida_empresa(solicitud):
    return redireccionar('empresa/bienvenida.html', solicitud, {})


@login_required
def personaResultados(solicitud):
    if solicitud.method == 'GET':
        try:
            buscar = solicitud.GET['buscar']
            formularios = Formulario.objects.filter(titulo__icontains = buscar).exclude(id__lt = 3)
            texto = len(formularios)
        except:
            texto = "Error..."
    else:
        texto = solicitud.method
    datos = {'texto': texto, 'formularios' : formularios,
             'envia': "Edwar C."}
    return redireccionar('persona/resultados.html', solicitud, datos)


@login_required
def personaSolicitud(solicitud):
    vector = {}
    taxonomy = {}
    
    if solicitud.POST:
        try:
            texto = solicitud.POST['formularios']
            lista_formularios = texto
            formularios = texto.split(";")
            total_formularios = len(formularios) - 1
            productos = {}
            producto = {}
            i = 0
            if len(formularios) > 0:
                for formulario in formularios:
                    if formulario != "":
                        producto = Formulario.objects.get(id=formulario)
                        producto_campos = FormularioCampos.objects.filter(formulario_id = formulario).order_by('orden')
                        productos[formulario] = {'formulario':producto, 'formulario_campos':producto_campos}
                        for campo in producto_campos:
                            if i>0:
                                existe = False
                                for j in taxonomy:
                                    if taxonomy[j] == campo.taxonomia_id and campo.taxonomia_id>0:
                                        existe = True
                                        break
                                if not existe:
                                    vector[i] = {'formulario':producto, 'campo':campo}
                                    taxonomy[i] = campo.taxonomia_id
#                                Comparar si el vector ya tiene el campo que se pretende agregar
                            else:
                                vector[i] = {'formulario':producto, 'campo':campo}
                                taxonomy[i] = campo.taxonomia_id
                            i = i + 1
                     
        except:
            total_formularios = "Error..."
    
            
    datos = {'texto': total_formularios, 'formularios':productos, 'lista_formularios':lista_formularios,
             'nuevo_total':total_formularios, 'nuevo_vector':vector, 
             'envia': "Edwar C."}
    return redireccionar('persona/solicitud.html', solicitud, datos)


@login_required
def personaSolicitudEnviar(solicitud):
    if solicitud.POST:
        session = Session.objects.get(session_key=solicitud.session.session_key)
        uid = session.get_decoded().get('_auth_user_id')
        
        try:
            texto = solicitud.POST['lista_formularios']
            formularios = texto.split(";")
            
            if len(formularios) > 0:
                for formulario in formularios:
                    if formulario.strip() != "":
                        producto = Formulario.objects.get(id=formulario)
                        fecha_solicitud = date.today()
                        solicitudForm = Solicitud(empresa_id = producto.empresa_id, formulario_id = formulario, persona_id = uid, fecha_solicitud = fecha_solicitud, estado_id = 1)
                        solicitudForm.save()
                        
                        producto_campos = FormularioCampos.objects.filter(formulario_id=formulario)
                        for campo in producto_campos:
                            attr = "%s" %(campo.id) 
                            valor = solicitud.POST[attr]
                            solicitud_campos = SolicitudCampos(solicitud_id = solicitudForm.id, formulario_campos_id = campo.id, contenido = valor)
                            solicitud_campos.save()
        except:
            texto = "Error..."
    
    return HttpResponseRedirect("/persona/solicitudes")


@login_required
def personaSolicitudes(solicitud):
    session = Session.objects.get(session_key=solicitud.session.session_key)
    uid = session.get_decoded().get('_auth_user_id')
    solicitudes = Solicitud.objects.filter(persona_id = uid)
    
    datos = {'solicitudes': solicitudes}  
    return redireccionar('persona/solicitudes.html', solicitud, datos)

        
#===============================================================================
#  VISTA EMPRESAS
#===============================================================================

@login_required
def empresaFormulario(solicitud):
    if solicitud.session['grupoUsuarioId'] != 3:
        session = Session.objects.get(session_key=solicitud.session.session_key)
        uid = session.get_decoded().get('_auth_user_id')
        formularios = Formulario.objects.filter(empresa_id = uid)
        
        datos = {'formularios': formularios}  
        return redireccionar('empresa/formularios.html', solicitud, datos)
    else:
        return HttpResponseRedirect('/busqueda')

@login_required
def empresaFormularioNuevo(solicitud):
    if solicitud.session['grupoUsuarioId'] != 3:
        unidadTiempo = UnidadTiempo.objects.all()
        taxonomiaCampo = TaxonomiaCampo.objects.all()
        tipoCampo = TipoCampo.objects.all()
        datos = {'unidadTiempo': unidadTiempo, 'taxonomiaCampo': taxonomiaCampo,
                 'tipoCampo': tipoCampo}  
        return redireccionar('empresa/nuevo_formulario.html', solicitud, datos)
    else:
        return HttpResponseRedirect('/busqueda')
    

@login_required
def empresaFormularioEditar(solicitud):
    if solicitud.session['grupoUsuarioId'] != 3:
        c = {}
        tmp_formulario = ""
        tmp_campos = ""
        
        c.update(csrf(solicitud.POST.get('csrfmiddlewaretoken')))
        session = Session.objects.get(session_key=solicitud.session.session_key)
        uid = session.get_decoded().get('_auth_user_id')
        
        try:
            formularios = Formulario.objects.filter(empresa_id = uid)
            unidadTiempo = UnidadTiempo.objects.all()
            taxonomiaCampo = TaxonomiaCampo.objects.all()
            tipoCampo = TipoCampo.objects.all()  
        
            texto = solicitud.POST['formulario']
            for formulario in formularios:
                chk = u"%s_%s" %('chk', formulario.id)
                form_seleccionado = solicitud.POST.get(chk, 0)
                if form_seleccionado != 0:
                    tmp_formulario = Formulario.objects.get(empresa_id = uid, id = formulario.id)
                    tmp_campos = FormularioCampos.objects.filter(formulario_id = formulario).order_by('orden')
        except:
            texto = "error"
            
        datos = {'texto': texto, 'formulario':tmp_formulario, 'campos':tmp_campos,
                 'unidadTiempo': unidadTiempo, 'taxonomiaCampo': taxonomiaCampo,
                 'tipoCampo': tipoCampo} 
        return redireccionar('empresa/nuevo_formulario.html', solicitud, datos)
    else:
        return HttpResponseRedirect('/busqueda')


@login_required
def empresaFormularioEliminar(solicitud):
    if solicitud.POST:
        c = {}
        texto = ""
        c.update(csrf(solicitud.POST.get('csrfmiddlewaretoken')))
        session = Session.objects.get(session_key=solicitud.session.session_key)
        uid = session.get_decoded().get('_auth_user_id')
        
        try:
            formularios = Formulario.objects.filter(empresa_id = uid)
            for formulario in formularios:
                chk = u"%s_%s" %('chk', formulario.id)
                form_seleccionado = solicitud.POST.get(chk, 0)
                if form_seleccionado != 0:
                    tmp_formulario = Formulario.objects.get(empresa_id = uid, id = formulario.id)
                    tmp_formulario.delete();
            return HttpResponseRedirect("/empresa/formularios")
        except:
            texto = "Error"
            return HttpResponse(texto)


@login_required
def empresaFormularioGuardar(solicitud):
    if solicitud.POST:
        c = {}
        texto = "vacia"
        c.update(csrf(solicitud.POST.get('csrfmiddlewaretoken')))
        session = Session.objects.get(session_key=solicitud.session.session_key)
        uid = session.get_decoded().get('_auth_user_id')
        user = User.objects.get(pk=uid)
        
        id_formulario = solicitud.POST['id_formulario']
        titulo = solicitud.POST['titulo']
        descripcion = solicitud.POST['descripcion']
        palabras_clave = solicitud.POST['palabras-clave']
        publicado = solicitud.POST.get('publicado', 0)
        if publicado != 0:
            publicado = 1
        fecha_creacion = date.today()
        
        tmp_fecha = solicitud.POST['fecha-publicacion']
        if tmp_fecha != '':
            fecha_publicacion = date(int(tmp_fecha[6:10]), int(tmp_fecha[0:2]), int(tmp_fecha[3:5]))
        else:
            fecha_publicacion = date.today()
        
        tmp_fecha = solicitud.POST['fecha-vencimiento']
        if tmp_fecha != '':
            fecha_vencimiento = date(int(tmp_fecha[6:10]), int(tmp_fecha[0:2]), int(tmp_fecha[3:5]))
        else:
            fecha_vencimiento = date.today()
        
        tiempo = solicitud.POST['tiempo']
        if tiempo.strip() == "":
            tiempo = 0
        else:
            tiempo = int(tiempo)
            
        unidad_tiempo = solicitud.POST['unidad-tiempo']
        campos = solicitud.POST['campos']
        
        if campos.strip() == "":
            campos = 0
        campos = int(campos)
        if campos == 0:
            campos = 1
        
        try:
            if id_formulario == "":
                formulario = Formulario(empresa_id = user.id, titulo = titulo, descripcion = descripcion, palabras_clave = palabras_clave,  
                                        publicado = publicado, fecha_creacion = fecha_creacion, fecha_publicacion = fecha_publicacion, 
                                        fecha_vencimiento = fecha_vencimiento, duracion = tiempo, unidad_tiempo_id = unidad_tiempo)
            else:
                formulario = Formulario.objects.get(id = id_formulario)
                formulario.titulo = titulo
                formulario.descripcion = descripcion
                formulario.palabras_clave = palabras_clave
                formulario.publicado = publicado
                formulario.fecha_creacion = fecha_creacion
                formulario.fecha_publicacion = fecha_publicacion
                formulario.fecha_vencimiento = fecha_vencimiento
                formulario.duracion = tiempo
                formulario.unidad_tiempo_id = unidad_tiempo
            
            formulario.save()
            
            i = 0
            while i < campos:
                campo = u"%d" %(i)
                taxonomia = solicitud.POST['taxonomia' + campo]
                parametro = "%s%s" %('ayuda', campo)
                ayuda = solicitud.POST[parametro]
                parametro = "%s%s" %('etiqueta', campo)
                etiqueta = solicitud.POST[parametro]
                parametro = "%s%s" %('orden', campo)
                orden = solicitud.POST[parametro]
                if orden.strip() == "":
                    orden = 0
                else:
                    orden = int(orden)
                
                parametro = "%s%s" %('tipo-campo', campo)
                tipo_campo = solicitud.POST[parametro]
                parametro = "%s%s" %('orden', campo)
                obligatorio = solicitud.POST.get(parametro, 0)
                if obligatorio != 0:
                    obligatorio = 1
                    
                if id_formulario == "":
                    existe = False
                else:
                    if solicitud.POST['campo' + campo]:
                        id_campo = solicitud.POST.get('campo' + campo, 0)
                        formulario_campos = FormularioCampos.objects.get(id = id_campo, formulario_id = formulario.id)
                        if not formulario_campos:
                            existe = False
                        else:
                            existe = True
                    else:
                        existe = False
                
                if existe:
                    formulario_campos.taxonomia_id = taxonomia
                    formulario_campos.etiqueta = etiqueta
                    formulario_campos.ayuda = ayuda
                    formulario_campos.tipo_campo_id = tipo_campo
                    formulario_campos.obligatorio = obligatorio
                    formulario_campos.orden = orden
                    formulario_campos.validaciones = ""
                else:
                    formulario_campos = FormularioCampos(empresa_id = user.id, formulario_id = formulario.id, 
                                                         taxonomia_id = taxonomia, etiqueta = etiqueta, ayuda = ayuda, 
                                                         tipo_campo_id = tipo_campo, obligatorio = obligatorio, 
                                                         orden = orden, validaciones = '')
                formulario_campos.save()

                i = i + 1
        
            return HttpResponseRedirect("/empresa/formularios")
        except:
            texto = "Error"
            return HttpResponse(texto)
    

@login_required
def empresaSolicitudes(solicitud):
    if solicitud.session['grupoUsuarioId'] != 3:
        session = Session.objects.get(session_key=solicitud.session.session_key)
        uid = session.get_decoded().get('_auth_user_id')
        solicitudes = Solicitud.objects.filter(empresa_id = uid).order_by('-fecha_solicitud')
        
        datos = {'solicitudes': solicitudes}  
        return redireccionar('empresa/solicitudes.html', solicitud, datos)
    else:
        return HttpResponseRedirect('/busqueda')
    

@login_required
def empresaSolicitudPersona(solicitud, solicitud_id):
    if solicitud.session['grupoUsuarioId'] != 3:
        solicitudes = Solicitud.objects.get(id = solicitud_id)
        solicitud_campos = SolicitudCampos.objects.filter(solicitud_id = solicitud_id).order_by('formulario_campos__orden')
        estado_solicitud = EstadoSolicitud.objects.all()
        datos = {'solicitudes': solicitudes, 'solicitud_campos':solicitud_campos, 'estadoSolicitud': estado_solicitud}  
        return redireccionar('empresa/solicitud_persona.html', solicitud, datos)
    else:
        return HttpResponseRedirect('/busqueda')
    

@login_required
def empresaSolicitudPersonaGuardar(solicitud):
    solicitud_id = solicitud.POST['solicitud']
    texto = "%s %s " %("guardando...", solicitud_id)
    
    try:
        solicitudes = Solicitud.objects.get(id = solicitud_id)
        solicitudes.observacion = solicitud.POST['observacion']
        estado = solicitud.POST['estado']
        solicitudes.estado = EstadoSolicitud.objects.get(id=estado)
        solicitudes.save()
        return HttpResponseRedirect("/empresa/solicitudes")
    except:
        texto = "Error"
        return HttpResponse(texto)
    